Imports System.Data.SqlClient
Public Class cls_equipoEND_

Implements ICloneable

#Region "Variables ..."
Private int_idequipoEND as Integer = 0
Private str_nombre as String = ""
Private str_nombrecorto as String = ""
Private str_observaciones as String = ""
Private str_serie as String = ""
Private int_idregistro as Integer = 0

Private obj_registro As cls_registro_ = Nothing
    Private col_Items As Collections.Generic.List(Of cls_equipoEND_) = Nothing

    Public Overrides Function ToString() As String
        Return nombre
    End Function
#End Region

#Region "Propiedades ..."
    ReadOnly Property This
        Get
            Return Me
        End Get
    End Property
    ReadOnly Property ThisDescripcion As String
        Get
            Return Me.ToString
        End Get
    End Property
    ReadOnly Property pKey
        Get
            Return idequipoEND
        End Get
    End Property
    Property idequipoEND() As Integer
        Get
            idequipoEND = int_idequipoEND
        End Get
        Set(ByVal value As Integer)
            int_idequipoEND = value
        End Set
    End Property
    Property nombre() As String
        Get
            nombre = str_nombre
        End Get
        Set(ByVal value As String)
            str_nombre = value
        End Set
    End Property
    Property nombrecorto() As String
        Get
            nombrecorto = str_nombrecorto
        End Get
        Set(ByVal value As String)
            str_nombrecorto = value
        End Set
    End Property
    Property observaciones() As String
        Get
            observaciones = str_observaciones
        End Get
        Set(ByVal value As String)
            str_observaciones = value
        End Set
    End Property
    Property serie() As String
        Get
            serie = str_serie
        End Get
        Set(ByVal value As String)
            str_serie = value
        End Set
    End Property
    Property idregistro() As Integer
        Get
            idregistro = int_idregistro
        End Get
        Set(ByVal value As Integer)
            int_idregistro = value
        End Set
    End Property

    Property Items() As Collections.Generic.List(Of cls_equipoEND_)
        Get
            Items = col_Items
        End Get
        Set(ByVal value As Collections.Generic.List(Of cls_equipoEND_))
            col_Items = value
        End Set
    End Property
    Property registro() As cls_registro_
        Get
            If IsNothing(obj_registro) Then
                obj_registro = New cls_registro_
                If Not obj_registro.Buscar(idregistro) Then
                    obj_registro = Nothing
                End If
            End If
            registro = obj_registro
        End Get
        Set(ByVal value As cls_registro_)
            obj_registro = value
        End Set
    End Property
#End Region

Private Sub CargarColeccion(ByVal obj_Reader As SqlDataReader)
col_Items = New Collections.Generic.List(Of cls_equipoEND_)
While obj_Reader.Read()
Dim Elemento As New cls_equipoEND_
Elemento.int_idequipoEND= (obj_Reader.GetValue(obj_Reader.GetOrdinal("idequipoEND")))

If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("nombre"))) = False Then
Elemento.str_nombre= (obj_Reader.GetValue(obj_Reader.GetOrdinal("nombre")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("nombrecorto"))) = False Then
Elemento.str_nombrecorto= (obj_Reader.GetValue(obj_Reader.GetOrdinal("nombrecorto")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("observaciones"))) = False Then
Elemento.str_observaciones= (obj_Reader.GetValue(obj_Reader.GetOrdinal("observaciones")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("serie"))) = False Then
Elemento.str_serie= (obj_Reader.GetValue(obj_Reader.GetOrdinal("serie")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idregistro"))) = False Then
Elemento.int_idregistro= (obj_Reader.GetValue(obj_Reader.GetOrdinal("idregistro")))
End If
col_Items.Add(Elemento)
End While
End Sub

Private Sub CargarVariables(ByVal obj_Reader As SqlDataReader)
obj_Reader.Read()
int_idequipoEND= (obj_Reader.GetValue(obj_Reader.GetOrdinal("idequipoEND")))

If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("nombre"))) = False Then
str_nombre= (obj_Reader.GetValue(obj_Reader.GetOrdinal("nombre")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("nombrecorto"))) = False Then
str_nombrecorto= (obj_Reader.GetValue(obj_Reader.GetOrdinal("nombrecorto")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("observaciones"))) = False Then
str_observaciones= (obj_Reader.GetValue(obj_Reader.GetOrdinal("observaciones")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("serie"))) = False Then
str_serie= (obj_Reader.GetValue(obj_Reader.GetOrdinal("serie")))
End If
If IsDBNull(obj_Reader.GetValue(obj_Reader.GetOrdinal("idregistro"))) = False Then
int_idregistro= (obj_Reader.GetValue(obj_Reader.GetOrdinal("idregistro")))
End If
End Sub

Public Sub Nuevo(Optional ByVal ObtenerID As Boolean = False)
Dim obj_Conexion As New cls_Conexion
Try
'Creacion de registro----------------------------------------------------
If IsNothing(obj_registro) Then
registro = New cls_registro_
registro.fechacreado = Now
registro.idusuariocreado = UsuarioLOG.idusuario
registro.fechamodificado = Now
registro.idusuariomodificado = UsuarioLOG.idusuario
registro.idregistroestado = 1
registro.idusuarioregistroestado = UsuarioLOG.idusuario
registro.Nuevo(True)
idregistro = obj_registro.idregistro
End If
'------------------------------------------------------------------------
obj_Conexion.Conectar()
With obj_Conexion.obj_SqlCommand
.CommandType = CommandType.StoredProcedure
.Connection = obj_Conexion.obj_SqlConnection
.CommandText = "equipoEND__Nuevo"
.Parameters.Add("@nombre", SqlDbType.nvarchar).Value = str_nombre
.Parameters.Add("@nombrecorto", SqlDbType.nvarchar).Value = str_nombrecorto
.Parameters.Add("@observaciones", SqlDbType.nvarchar).Value = str_observaciones
.Parameters.Add("@serie", SqlDbType.nvarchar).Value = str_serie
.Parameters.Add("@idregistro", SqlDbType.int).Value = int_idregistro
.ExecuteNonQuery()
End With
If ObtenerID Then
CargarUltimo()
End If
Catch ex As SqlClient.SqlException
MessageBox.Show("Error al Crear el registro de equipoEND_." & Chr(13) & _
"Por favor informe del siguiente detalle técnico:" & Chr(13) & _
"Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
"Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
obj_Conexion.Desconectar()
obj_Conexion = Nothing
End Try
End Sub

Public Sub Modificar()
Dim obj_Conexion As New cls_Conexion
Try
'Modificacion de registro------------------------------------------------
registro.fechamodificado = Now : registro.idusuariomodificado = UsuarioLOG.idusuario
registro.Modificar()
'------------------------------------------------------------------------
obj_Conexion.Conectar()
With obj_Conexion.obj_SqlCommand
.CommandType = CommandType.StoredProcedure
.Connection = obj_Conexion.obj_SqlConnection
.CommandText = "equipoEND__Modificar"
.Parameters.Add("@idequipoEND", SqlDbType.int).Value = int_idequipoEND
.Parameters.Add("@nombre", SqlDbType.nvarchar).Value = str_nombre
.Parameters.Add("@nombrecorto", SqlDbType.nvarchar).Value = str_nombrecorto
.Parameters.Add("@observaciones", SqlDbType.nvarchar).Value = str_observaciones
.Parameters.Add("@serie", SqlDbType.nvarchar).Value = str_serie
.Parameters.Add("@idregistro", SqlDbType.int).Value = int_idregistro
.ExecuteNonQuery()
End With
Catch ex As SqlClient.SqlException
MessageBox.Show("Error al Modificar el registro de equipoEND_." & Chr(13) & _
"Por favor informe del siguiente detalle técnico:" & Chr(13) & _
"Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
"Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
obj_Conexion.Desconectar()
obj_Conexion = Nothing
End Try
End Sub

Public Sub Eliminar(ByVal idequipoEND As Integer)
Dim obj_Conexion As New cls_Conexion
Try
obj_Conexion.Conectar()
With obj_Conexion.obj_SqlCommand
.CommandType = CommandType.StoredProcedure
.Connection = obj_Conexion.obj_SqlConnection
.CommandText = "equipoEND__Eliminar"
.Parameters.Add("@idequipoEND", SqlDbType.int).Value = idequipoEND
.ExecuteNonQuery()
End With
Catch ex As SqlClient.SqlException
MessageBox.Show("Error al Eliminar el registro de equipoEND_." & Chr(13) & _
"Por favor informe del siguiente detalle técnico:" & Chr(13) & _
"Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
"Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
obj_Conexion.Desconectar()
obj_Conexion = Nothing
End Try
End Sub

Public Function Buscar(ByVal idequipoEND As Integer) as Boolean
Dim obj_Conexion As New cls_Conexion
Dim obj_Reader As SqlDataReader
Try
Buscar = False
obj_Conexion.Conectar()
With obj_Conexion.obj_SqlCommand
.CommandType = CommandType.StoredProcedure
.Connection = obj_Conexion.obj_SqlConnection
.CommandText = "equipoEND__Buscar"
.Parameters.Add("@idequipoEND", SqlDbType.int).Value = idequipoEND
End With
obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
If obj_Reader.HasRows Then
CargarVariables(obj_Reader)
Buscar = True
End If
Catch ex As SqlClient.SqlException
MessageBox.Show("Error al Buscar el registro de equipoEND_." & Chr(13) & _
"Por favor informe del siguiente detalle técnico:" & Chr(13) & _
"Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
"Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
obj_Conexion.Desconectar()
obj_Conexion = Nothing
obj_Reader = Nothing
End Try
End Function

Public Sub CargarUltimo()
Dim obj_Conexion As New cls_Conexion
Dim obj_Reader As SqlDataReader
Try
obj_Conexion.Conectar()
With obj_Conexion.obj_SqlCommand
.CommandType = CommandType.StoredProcedure
.Connection = obj_Conexion.obj_SqlConnection
.CommandText = "equipoEND__CargarUltimo"
End With
obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
If obj_Reader.HasRows Then
CargarVariables(obj_Reader)
End If
Catch ex As SqlClient.SqlException
MessageBox.Show("Error al CargarUltimo registro de equipoEND_." & Chr(13) & _
"Por favor informe del siguiente detalle técnico:" & Chr(13) & _
"Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
"Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
obj_Conexion.Desconectar()
obj_Conexion = Nothing
obj_Reader = Nothing
End Try
End Sub

    Public Function CargarTodos(Optional ByVal idregistroestado As Integer = 1) As Boolean
        Dim obj_Conexion As New cls_Conexion
        Dim obj_Reader As SqlDataReader
        Try
            CargarTodos = False
            obj_Conexion.Conectar()
            With obj_Conexion.obj_SqlCommand
                .CommandType = CommandType.StoredProcedure
                .Connection = obj_Conexion.obj_SqlConnection
                .CommandText = "equipoEND__CargarTodos"
                .Parameters.Add("@idregistroestado", SqlDbType.Int).Value = idregistroestado
            End With
            obj_Reader = obj_Conexion.obj_SqlCommand.ExecuteReader
            If obj_Reader.HasRows Then
                CargarColeccion(obj_Reader)
                CargarTodos = True
            End If
        Catch ex As SqlClient.SqlException
            MessageBox.Show("Error al CargarTodos los registros de equipoEND_." & Chr(13) & _
            "Por favor informe del siguiente detalle técnico:" & Chr(13) & _
            "Nro de error: " & ex.ErrorCode & "." & Chr(13) & _
            "Descripción: " & ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            obj_Conexion.Desconectar()
            obj_Conexion = Nothing
            obj_Reader = Nothing
        End Try
    End Function

Public Function Clone() As Object Implements System.ICloneable.Clone
Dim obj_equipoEND_Clon As New cls_equipoEND_
obj_equipoEND_Clon.int_idequipoEND= Me.int_idequipoEND
obj_equipoEND_Clon.str_nombre= Me.str_nombre
obj_equipoEND_Clon.str_nombrecorto= Me.str_nombrecorto
obj_equipoEND_Clon.str_observaciones= Me.str_observaciones
obj_equipoEND_Clon.str_serie= Me.str_serie
obj_equipoEND_Clon.int_idregistro= Me.int_idregistro
obj_equipoEND_Clon.col_Items = Me.col_Items
Return obj_equipoEND_Clon
End Function

End Class
